Skip to content

C++: Data flow through & and *#1778

Closed
jbj wants to merge 3 commits into
github:masterfrom
jbj:ast-field-flow-addressof
Closed

C++: Data flow through & and *#1778
jbj wants to merge 3 commits into
github:masterfrom
jbj:ast-field-flow-addressof

Conversation

@jbj

@jbj jbj commented Aug 20, 2019

Copy link
Copy Markdown
Contributor

(the first two commits are from #1777).

The data flow library conflates pointers and their objects in some places but not others. It might be ideal to avoid that conflation, but that's not realistic without using the IR.

We've had good experience in the taint tracking library with conflating pointers and objects, and it improves results for field flow, so perhaps it's time to try it out for all data flow.

To do: performance testing, change note, and discussing whether this is a good idea at all.

jbj added 3 commits August 20, 2019 15:06
The data flow library conflates pointers and objects enough for the
`definitionByReference` predicate to be too strict in some cases. It was
too permissive in other cases that are now (or will be) handled better
by field flow.

See also the change note entry.
This means that the pre-update node for the `DefinitionByReferenceNode`
in `f(&x)` is now `x` rather than `&x`. That has little effect on the
test results apart from removing some false flow around `memcpy`.
The data flow library conflates pointers and their objects in some
places but not others. It might be ideal to avoid that conflation, but
that's not realistic without using the IR.

We've had good experience in the taint tracking library with conflating
pointers and objects, and it improves results for field flow, so perhaps
it's time to try it out for all data flow.
@jbj

jbj commented Sep 9, 2019

Copy link
Copy Markdown
Contributor Author

Superseded by #1884.

@jbj jbj closed this Sep 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant